const express = require("express");
const router = express.Router();
const { Setting } = require("../models");
const { NotFound } = require("http-errors");
const { success, failure } = require("../utils/responses");
// 自定义 redis 读写
const { setKey, getKey } = require("../utils/redis");
/**
 * 获取系统设置详情
 * GET /admin/settings
 * @return 系统设置详情
 */
router.get("/", async function (req, res) {
  try {
    // 缓存的 key，定义为：setting
    const cacheKey = "setting";

    // 读取缓存中的数据
    let setting = await getKey(cacheKey);

    // 如果缓存中没有数据，则从数据库中读取数据
    if (!setting) {
      // 系统设置只有一条数据，所以查询id为1的系统设置
      setting = await Setting.findOne();
      if (!setting) {
        throw new NotFound("未找到系统设置，请联系管理员。");
      }

      // 并将数据写入缓存
      await setKey(cacheKey, setting);
    }

    success(res, "查询系统信息成功。", { setting });
  } catch (error) {
    failure(res, error);
  }
});

module.exports = router;
